<!DOCTYPE html>
<html lang="zh-CN">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>面试题-调优</title>
</head>

<body>
  <h2>面试题-调优</h2>
  <script>

    // ------------- 原写法 -------------
    // let nums = []
    // function sum(...args) {
    //   nums.push(...args)
    //   if (nums.length >= 5) {
    //     const res = nums.slice(0, 5).reduce((p, v) => p + v, 0)
    //     nums = []
    //     return res
    //   } else {
    //     return sum
    //   }
    // }

    // ------------- 需求 -------------
    // 基于上一节代码,实现函数sumMaker:参数个数可以自定义
    // 2. 接收参数的个数
    function sumMaker(length) {
      // 1. 复用上一节的逻辑
      let nums = []
      function sum(...args) {
        nums.push(...args)
        if (nums.length >= length) {
          const res = nums.slice(0, length).reduce((p, v) => p + v, 0)
          nums = []
          return res
        } else {
          return sum
        }
      }

      return sum
    }

    // 调用
    // const sum6 = sumMaker(6)
    // sum6(1, 2, 3)(4, 5, 6)
    // const sum4 = sumMaker(4)
    // sum6(1, 2)(3)(4)






  </script>
</body>

</html>